package com.spc.car.data.domain.adm.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;

@Data
public class AdmVehicleInfoVO {

    private Long id;

    /**
     * 车辆名称
     */
    @NotBlank(message = "车辆名称不能为空！")
    @Length(max = 50, message = "最大不能超过50个字符！")
    private String carName;

    /**
     * 车牌号
     */
    @NotBlank(message = "车牌号不能为空！")
    private String numberPlate;

    /**
     * 品牌
     */
    @NotBlank(message = "车辆品牌不能为空！")
    private String carBrand;

    /**
     * 车辆负责人
     */
    @NotBlank(message = "车辆负责人不能为空！")
    private String carCharge;

    /**
     * 车辆使用状态（1-可借用；2-不提供借用；3-已处置）
     */
    @NotNull(message = "请选择状态")
    private Integer carUseStatus;

    /**
     * 使用部门
     */
    @NotNull(message = "请选择使用部门")
    private Long depId;

    @NotBlank(message = "部门名称不能为空！")
    private String depName;

    /**
     * 座位数
     */
    @NotBlank(message = "座位数不能为空！")
    private Integer carSeatNum;

    /**
     * 车架号
     */
    private String frame;

    /**
     * 购买日期
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date purchaseData;


    /**
     * 年审结束时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date examineEndDate;

    /**
     * 保险到期日期
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date insureEndDate;

    /**
     * 保养日期
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date maintainDate;

    /**
     * 保养公里数
     */
    @NotNull
    @Min(value = 0, message = "必须是数字")
    private BigDecimal maintainMiles;

    /**
     * 车辆证件
     */
    private String license;

    /**
     * 备注
     */
    private String remark;
}
